package com.ai.dao.edu.cms.info;

import java.util.List;

import com.ai.model.edu.cms.info.InfoPublishLocation;
import com.ai.model.edu.cms.info.dto.InfoPublishLocationDTO;
import com.ai.model.edu.cms.info.vo.InfoPublishLocationVO;

/**
 * @ClassName: InfoPublishLocationMapper
* @Description: info_publish_location表对应的Mapper映射类
* @author: daizy@icloudedu.net
 */
public interface InfoPublishLocationMapper {

    /**
    * @Title InfoPublishLocationMapper.deleteByPrimaryKey
    * @Description: 根据属性名称，删除info_publish_location
    * @param id id
    * @return int  删除个数
     *//*
    int deleteByPrimaryKey(Long id);

    *//**
    * @Title InfoPublishLocationMapper.insert
    * @Description: 插入一个info_publish_location
    * @param record info_publish_location的bean对象
    * @return int  插入个数
     *//*
    int insert(InfoPublishLocation record);

    *//**
    * @Title InfoPublishLocationMapper.insertSelective
    * @Description: 插入一个只有部分字段的info_publish_location
    * @param record 只含部分字段的info_publish_location的bean对象
    * @return int  插入个数
     *//*
    int insertSelective(InfoPublishLocation record);


    *//**
    * @Title InfoPublishLocationMapper.selectByPrimaryKey
    * @Description: 根据主键类，返回info_publish_location
    * @param id id
    * @return InfoPublishLocation bean对象
     *//*
    InfoPublishLocation selectByPrimaryKey(Long id);


    *//**
    * @Title InfoPublishLocationMapper.updateByPrimaryKeySelective
    * @Description: 根据主键更新info_publish_location部分字段
    * @param record 要更新成为的InfoPublishLocation对象
    * @return int 更新记录数
     *//*
    int updateByPrimaryKeySelective(InfoPublishLocation record);

    *//**
    * @Title InfoPublishLocationMapper.updateByPrimaryKey
    * @Description: 根据主键更新info_publish_location全部字段
    * @param record 要更新成为的InfoPublishLocation对象
    * @return int 更新记录数
     *//*
    int updateByPrimaryKey(InfoPublishLocation record);*/
	
	/**
	 * 批量新增发布 定位
	 * daizy
	 * @param list
	 */
	public void batchAddInfoPublishLocation(List<InfoPublishLocation> list);
	
	/**
	 * 根据模版类型  时间  查询需要发布的模块资讯信息
	 * @param dto
	 * @return
	 */
	public List<InfoPublishLocationVO> findMustPublishLocationInfoByLocType(InfoPublishLocationDTO dto);
	
	/**
	 * 根据模版类型   查询游客版面信息
	 * @param locType
	 * @return
	 */
	public List<InfoPublishLocationVO> findMustPublishYkInfoByLocType(Byte locType);
	
	/**
	 * 根据模版以及角色  查询对应的资讯发布的版面信息
	 * @param dto
	 * @return
	 */
	public List<InfoPublishLocationVO> findGXInfoByLocTypeAndPyAndRc(InfoPublishLocationDTO dto);
	
	/**
	 * 批量修改发布状态
	 * @param ids
	 */
	public void batchEditInfoPublishLocation(List<Long> ids);

    /***
     * 根据位置类型或者发布对象查询资讯列表
     * @param dto
     * @return
     */
    public List<InfoPublishLocationVO> findInfoByLocTypeOrObjType(InfoPublishLocationDTO dto);

	/***
	 * 修改发布状态
	 * @param dto
	 */
	public void editInfoPublishLocation(InfoPublishLocationDTO dto);
}